FCMGMT-MIB DEFINITIONS ::= BEGIN

--
-- Version 3.0 of FA MIB
-- Text modified by Nishan Systems for compilation and trap integration
-- purposes only.
--
--  10/10/02: Assigned severity levels for traps and categorized them into NNM 
--  compliant event categories.


  IMPORTS 
    IpAddress,  TimeTicks, experimental 
        FROM RFC1155-SMI 
    OBJECT-TYPE 
        FROM RFC-1212 
    DisplayString 
        FROM RFC1213-MIB 
    TRAP-TYPE 
        FROM RFC-1215; 

-- ===========================================================
    --Textual conventions for this MIB    

    FcNameId ::= OCTET STRING (SIZE(8))

    FcGlobalId ::= OCTET STRING (SIZE(16))

    FcAddressId ::= OCTET STRING (SIZE(3))

    FcEventSeverity  ::= INTEGER { 
                unknown     (1),
                   emergency       (2),
                   alert           (3),
                   critical        (4),
                   error           (5),
                   warning         (6),
                   notify          (7),
                   info            (8),
                   debug           (9),
                   mark            (10)  -- All 
                            -- messages
                            -- logged
            } 

    FcUnitType ::= INTEGER { 
                unknown(1),
                other(2), -- none of the following 
                hub(3), -- passive connectivity unit
                        -- supporting loop protocol.
                switch(4), -- active connectivity unit
                           -- supporting multiple protocols.
                gateway(5), -- unit that converts not only
                            -- the interface but also encapsulates
                            -- the frame into another protocol. The
                            -- assumption is that there is always
                            -- two gateways connected together. For
                            -- example, FC <-> ATM.
                converter(6), -- unit that converts from one
                              -- interface to another. For
                              -- example, FC <-> SCSI.
                hba(7), -- host bus adapter
                proxy-agent(8), -- software proxy-agent
                storage-device(9), -- disk,cd,tape,etc
                host(10), -- host computer
                storage-subsystem(11), -- raid, library, etc
                module(12), -- subcomponent of a system
                swdriver(13), -- software driver
                storage-access-device(14), -- Provides storage
                                         -- management and access for
                                         -- hetergeneous hosts and
                                         -- heterogeneous devices.
                wdm(15), -- waveform division mutiplexer
                ups(16) -- uninterruptable power supply
            } 

-- ===========================================================
    fcmgmt    OBJECT IDENTIFIER ::= { experimental 94 } 

    -- groups in fcmgmt 

    connSet       OBJECT IDENTIFIER ::= { fcmgmt 1 } 
    trapReg       OBJECT IDENTIFIER ::= { fcmgmt 2 } 
    statSet       OBJECT IDENTIFIER ::= { fcmgmt 4 }
    connUnitServiceSet         OBJECT IDENTIFIER ::= { fcmgmt 5 }
    connUnitServiceScalars     OBJECT IDENTIFIER ::=
               { connUnitServiceSet 1 }
    connUnitServiceTables      OBJECT IDENTIFIER ::=
               { connUnitServiceSet 2 }

    revisionNumber OBJECT-TYPE
        SYNTAX DisplayString (SIZE (4))
        ACCESS read-only 
        STATUS mandatory 
        DESCRIPTION
            "This is the revision number for this MIB. The
            format of the revision value is as follows
                (0) = high order major revision number
                (1) = low order major revision number
                (2) = high order minor revision number
                (3) = low order minor revision number
            The value will be stored as an ASCII value. The
            following is the current value of this object.
                (0) = '0'
                (1) = '3'
                (2) = '0'
                (3) = '0'
            This defines a revision of 03.00
            "
        ::= { fcmgmt 3 }

    -- the connectivity unit group 

    -- Implementation of the group is mandatory for all systems. 

    uNumber OBJECT-TYPE 
        SYNTAX INTEGER


        ACCESS read-only 
        STATUS mandatory 
        DESCRIPTION 
            "The number of connectivity units present on this
            system (represented by this agent). May be a count 
            of the boards in a chassis or the number of full boxes
            in a rack." 
        DEFVAL { 1 } 
        ::= { connSet 1 }

    systemURL OBJECT-TYPE
        SYNTAX DisplayString
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
            "The top-level URL of the system. If it does not exist
            the value is empty string. The URL format is 
            implementation dependant and can have keywords embedded
            that are preceeded by a percent sign (eg, %USER).
            The following are the defined keywords that will
            be recognized and replaced with data during a launch.
                USER        - replace with username
                PASSWORD    - replace with password
                GLOBALID    - replace with globalid
                SERIALNO    - replace with serial number
            If write is not supported, then return invalid.
            This value will be retained across boots."
        DEFVAL { "" }
        ::= { connSet 2 }

    statusChangeTime OBJECT-TYPE 
        SYNTAX TimeTicks 
        ACCESS read-only 
        STATUS obsolete
        DESCRIPTION 
            "The sysuptime timestamp in centiseconds at which
            the last status change occurred for any members of
            the set."
        ::= { connSet 3 }

    configurationChangeTime OBJECT-TYPE 
        SYNTAX TimeTicks 
        ACCESS read-only 
        STATUS obsolete
        DESCRIPTION 
            "The sysuptime timestamp in centiseconds at which
            the last configuration change occurred for any
            members of the set. This represents a union of change
            information for connUnitConfigurationChangeTime."
        ::= { connSet 4 }

    connUnitTableChangeTime OBJECT-TYPE
        SYNTAX TimeTicks
        ACCESS read-only 
        STATUS obsolete
        DESCRIPTION
            "The sysuptime timestamp in centiseconds at which
            the connUnitTable was updated (an entry was either
            added or deleted."
        ::= { connSet 5 }

    -- The Connectivity table contains general information on the 
    -- system's units.
    connUnitTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF ConnUnitEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "A list of units under a single SNMP agent. The number 
            of entries is given by the value of uNumber. It is 1 
            for stand-alone system." 
        ::= { connSet 6 }

    connUnitEntry OBJECT-TYPE 
        SYNTAX ConnUnitEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "A connectivity unit entry containing objects for a 
             particular unit." 
        INDEX { connUnitId } 
        ::= { connUnitTable 1 } 

        ConnUnitEntry ::= 
            SEQUENCE { 
                connUnitId
       FcGlobalId,
                connUnitGlobalId
       FcGlobalId,
                connUnitType 
       FcUnitType, 
                connUnitNumports 
       INTEGER, 
                connUnitState 
       INTEGER, 
                connUnitStatus 
       INTEGER, 
                connUnitProduct 
       DisplayString, 
                connUnitSn 
       DisplayString, 
                connUnitUpTime 
       TimeTicks, 
                connUnitUrl 
       DisplayString, 
                connUnitDomainId 
       OCTET STRING, 
                connUnitProxyMaster 
       INTEGER, 
                connUnitPrincipal 
       INTEGER,
                connUnitNumSensors 
       INTEGER,
                connUnitStatusChangeTime
       TimeTicks,
                connUnitConfigurationChangeTime
       TimeTicks,
                connUnitNumRevs
       INTEGER,
                connUnitNumZones
       INTEGER,
                connUnitModuleId
       FcGlobalId,
                connUnitName
       DisplayString,
                connUnitInfo
       DisplayString,
                connUnitControl
       INTEGER,
                connUnitContact
       DisplayString,
                connUnitLocation
       DisplayString,
                connUnitEventFilter
       FcEventSeverity,
                connUnitNumEvents
       INTEGER,
                connUnitMaxEvents
       INTEGER,
                connUnitEventCurrID
       INTEGER
            } 

        connUnitId OBJECT-TYPE 
            SYNTAX FcGlobalId
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
             "The unique identification for this connectivity unit
              among those within this proxy domain.  
              The value MUST be unique within the proxy domain
              because it is the index variable for connUnitTable.
              The value assigned to a given conectivity unit
              SHOULD be persistent across agent and unit resets.
              It SHOULD be the same as connUnitGlobalId
              if connUnitGlobalId is known and stable."
            ::= { connUnitEntry 1 } 

        connUnitGlobalId OBJECT-TYPE 
            SYNTAX FcGlobalId
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
     "An optional global-scope identifier for this connectivity unit.
      It MUST be a WWN for this connectivity unit
      or 16 octets of value zero. 
      WWN formats requiring fewer than 16 octets 
      MUST be extended to 16 octets with trailing zero octets,
      Left justified, zero filled,
      If a WWN is used for connUnitId,
      the same WWN MUST be used for connUnitGlobalId.
      When a non-zero value is provided, 
      it SHOULD be persistent across agent and unit resets.
      It SHOULD be globally unique.
      It SHOULD be one of these FC-PH/PH3 formats:
                   IEEE (NAA=1)
                   IEEE Extended (NAA=2)
                   IEEE Registered (NAA=5).
                   IEEE Registered extended (NAA=6).

      Use of the IEEE formats allows any IEEE-registered vendor
      to assure global uniqueness independently.
      The following are some references on IEEE WWN formats:
    http://standards.ieee.org/regauth/oui/tutorials/fibreformat.html 
    http://standards.ieee.org/regauth/oui/tutorials/fibrecomp_id.html

      If one or more WWNs are associated with the connUnit
      via other management methods,
      one of them SHOULD be used for connUnitGlobalId.
      If there is not a WWN assigned specifically to the connUnit,
      there is some merit, though not a requirement,
      to using a WWN assigned to (one of) 
      its permanently attached FC/LAN interface(s). 
      This can not risk uniqueness, though.
      As a counterexample, if your
      agent runs in a host and the host has an HBA,
      it is quite possible that agent, host, and HBA
      will all be distinct connUnits, so the host
      and agent can not use the WWN of the HBA.
      Another example:
      If your hub has a built-in Ethernet port, it
      might be reasonable for the hub to use its MAC
      address (prefixed with the appropriate
      NAA) as its connUnitId. But if the
      Ethernet were a replaceable PCCard, the hub
      should have an independent ID."
            ::= { connUnitEntry 2 } 

        connUnitType OBJECT-TYPE 
            SYNTAX FcUnitType 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The type of this connectivity unit." 
            ::= { connUnitEntry 3 } 


        connUnitNumports OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Number of physical ports in the connectivity unit 
                (internal/embedded, external)." 
            ::= { connUnitEntry 4 } 

        connUnitState OBJECT-TYPE 
            SYNTAX INTEGER {
                unknown(1),
                online(2), -- available for meaningful work
                offline(3) -- unavailable for meaningful work, for
         -- example in self-test mode, configuration, etc.
            }
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Overall state of the connectivity unit."
            ::= { connUnitEntry 5 } 

        connUnitStatus OBJECT-TYPE 
            SYNTAX INTEGER { 
                unknown(1),
                unused(2), -- cannot report status
                ok(3), -- available for meaningful work
                warning(4), -- something needs attention
                failed(5) -- something has failed
            } 
            ACCESS read-only 
            STATUS mandatory 

            DESCRIPTION 
 "Overall status of the connectivity unit. The goal of this object
  is to be the single poll point to check the status of the connunit.
  If there is any other component that has warning, then this should
  be set to warning, etc." 
            ::= { connUnitEntry 6 } 

        connUnitProduct OBJECT-TYPE 
            SYNTAX DisplayString (SIZE (0..79)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The connectivity unit vendor's product
                model name." 
            ::= { connUnitEntry 7 } 

        connUnitSn OBJECT-TYPE 
            SYNTAX DisplayString (SIZE (0..79)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The serial number for this connectivity unit." 
            ::= { connUnitEntry 8 } 

        connUnitUpTime OBJECT-TYPE 
            SYNTAX TimeTicks 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The number of centiseconds since the 
                last unit initialization." 
            ::= { connUnitEntry 9 } 

        connUnitUrl OBJECT-TYPE 
            SYNTAX DisplayString 
            ACCESS read-write 
            STATUS mandatory 
            DESCRIPTION 
                "URL to launch a management application, 
                if applicable. Otherwise empty string. 
                In a standalone unit, this would be the 
                same as the top-level URL. This has the same
                definition as systemURL for keywords.
                If write is not supported, then return invalid.
                This value will be retained across boots."
            ::= { connUnitEntry 10 } 

        connUnitDomainId OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE(3)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "24 bit Fibre Channel address ID of this 
                connectivity unit, right justified with leading 
                zero's if required. This should be set to the
                Fibre Channel address ID or if it is a switch
                it would be set to the Domain Controller address.
                If this value is not applicable,
                return all bits set to one."
            ::= { connUnitEntry 11 } 

        connUnitProxyMaster OBJECT-TYPE 
            SYNTAX INTEGER { 
                unknown(1),
                no(2), 
                yes(3) 
            } 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "A value of 'yes' means this is the proxy master 
                unit for a set of managed units. For example, 
                this could be the only unit with a management 
                card in it for a set of units. A standalone unit
                should return 'yes' for this object."
            ::= { connUnitEntry 12 } 

        connUnitPrincipal OBJECT-TYPE 
            SYNTAX INTEGER { 
                unknown(1),
                no(2), 
                yes(3) 
            } 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Whether this connectivity unit is the principal unit 
                within the group of fabric elements. If this value 
                is not applicable, return unknown."
            ::= { connUnitEntry 13 } 

        connUnitNumSensors OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Number of sensors in the connUnitSensorTable." 
            ::= { connUnitEntry 14 } 

        connUnitStatusChangeTime OBJECT-TYPE 
            SYNTAX TimeTicks 
            ACCESS read-only 
            STATUS obsolete
            DESCRIPTION 
                "The sysuptime timestamp in centiseconds 
                at which the last status change occurred."
            ::= { connUnitEntry 15 } 

        connUnitConfigurationChangeTime OBJECT-TYPE 
            SYNTAX TimeTicks 
            ACCESS read-only 
            STATUS obsolete
            DESCRIPTION 
                "The sysuptime timestamp in centiseconds 
                at which the last configuration change
                occurred."
            ::= { connUnitEntry 16 } 

        connUnitNumRevs OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The number of revisions in the connUnitRevsTable." 
            DEFVAL { 1 } 
            ::= { connUnitEntry 17 }

        connUnitNumZones OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS obsolete
            DESCRIPTION 
                "Number of zones defined in connUnitZoneTable."
            ::= { connUnitEntry 18 } 

        connUnitModuleId OBJECT-TYPE 
            SYNTAX FcGlobalId
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is a unique id, persistent between boots,
                that can be used to group a set of connUnits
                together into a module. The intended use would
                be to create a connUnit with a connUnitType of
                'module' to represent a physical or logical
                group of connectivity units. Then the value
                of the group would be set to the value of
                connUnitId for this 'container' connUnit.
                connUnitModuleId should be zeros if this
                connUnit is not part of a module."
            ::= { connUnitEntry 19 } 

        connUnitName OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..79))
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION     
                "A display string containing a name for this
                connectivity unit.  This object value should be 
                persistent between boots."
            ::= { connUnitEntry 20 }

        connUnitInfo OBJECT-TYPE
            SYNTAX DisplayString
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION     
                "A display string containing information
                about this connectivity unit. This object value 
                should be persistent between boots."
            ::= { connUnitEntry 21 }

        connUnitControl OBJECT-TYPE
            SYNTAX INTEGER {
                unknown(1),
                invalid(2),
                resetConnUnitColdStart(3),
                resetConnUnitWarmStart(4),
                offlineConnUnit(5),
                onlineConnUnit(6)
            }
            ACCESS read-write
            STATUS mandatory


            DESCRIPTION
                "This object is used to control the addressed
                connUnit. 

                NOTE: 'Cold Start' and 'Warm Start'
                are as defined in MIB II and are not meant
                to be a factory reset.

                resetConnUnitColdStart: 
       the addressed unit performs
       a 'Cold Start' reset.

                resetConnUnitWarmStart: 
       the addressed unit performs
       a 'Warm Start' reset.

                offlineConnUnit: 
       the addressed unit puts itself into
       an implementation dependant 'offline' state. 
       In general,if a unit is in an offline state,
       it cannot be used to perform meaningful 
       Fibre Channel work.

                onlineConnUnit: 
       the addressed unit puts itself into an 
       implementation dependant 'online' state. 
       In general, if a unit is in an online state, 
       it is capable of performing meaningful 
       Fibre Channel work.

                NOTE: Each implementation may chose not to allow
                any or all of these values on a SET. "

            ::= { connUnitEntry 22 } 

        connUnitContact OBJECT-TYPE 
            SYNTAX DisplayString (SIZE (0..79)) 
            ACCESS read-write 
            STATUS mandatory 
            DESCRIPTION 
                "Contact information for this connectivity
                unit. Persistent across boots."
            ::= { connUnitEntry 23 } 

        connUnitLocation OBJECT-TYPE 
            SYNTAX DisplayString (SIZE (0..79)) 
            ACCESS read-write 
            STATUS mandatory 
            DESCRIPTION 
                "Location information for this connectivity
                unit.Persistent across boots."
            ::= { connUnitEntry 24 } 


        connUnitEventFilter OBJECT-TYPE 
            SYNTAX FcEventSeverity
            ACCESS read-write 
            STATUS mandatory 
            DESCRIPTION 
                "This value defines the event severity
                that will be logged by this connectivity unit.
                All events of severity less than or equal to
                connUnitEventFilter are logged in connUnitEventTable.
                Persistent across boots." 
            ::= { connUnitEntry 25 } 

        connUnitNumEvents OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Number of events currently in the 
                connUnitEventTable."
            ::= { connUnitEntry 26 } 

        connUnitMaxEvents OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Max number of events that can be defined
                in connUnitEventTable."
            ::= { connUnitEntry 27 } 

        connUnitEventCurrID OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The last used event id (connUnitEventIndex)."
            ::= { connUnitEntry 28 } 

-- ===========================================================
-- The Table of revisions for hardware and software elements.

    connUnitRevsTable OBJECT-TYPE
        SYNTAX SEQUENCE OF ConnUnitRevsEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "Table of the revisions supported by 
            connectivity units managed by this agent."
        ::= { connSet 7 }

    connUnitRevsEntry OBJECT-TYPE
        SYNTAX ConnUnitRevsEntry
        ACCESS not-accessible
        STATUS mandatory


        DESCRIPTION
            ""
        INDEX { connUnitRevsUnitId,
            connUnitRevsIndex }
            ::= { connUnitRevsTable 1 }

        ConnUnitRevsEntry ::=
            SEQUENCE {
                connUnitRevsUnitId
       FcGlobalId, 
                connUnitRevsIndex
       INTEGER,
                connUnitRevsRevId
       DisplayString,
                connUnitRevsDescription
       DisplayString            }

        connUnitRevsUnitId OBJECT-TYPE 
            SYNTAX FcGlobalId
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The connUnitId of the connectivity unit
                that contains this revision table."
            ::= { connUnitRevsEntry 1 }

        connUnitRevsIndex OBJECT-TYPE 
            SYNTAX INTEGER (1..2147483647)
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "A unique value among all connUnitRevsEntrys
                with the same value of connUnitRevsUnitId,
                in the range between 1 and
                connUnitNumRevs[connUnitRevsUnitId]."
            ::= { connUnitRevsEntry 2 }

        connUnitRevsRevId OBJECT-TYPE
            SYNTAX DisplayString
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "A vendor-specific string identifying a
                revision of a component of the connUnit
                indexed by connUnitRevsUnitId."
            ::= { connUnitRevsEntry 3 }

        connUnitRevsDescription OBJECT-TYPE
            SYNTAX DisplayString
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "Description of a component to which the revision 
                corresponds."
            ::= { connUnitRevsEntry 4 }

-- ===========================================================
--    The Sensor table

    connUnitSensorTable OBJECT-TYPE
        SYNTAX SEQUENCE OF ConnUnitSensorEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "Table of the sensors supported by each
            connectivity unit managed by this agent."
        ::= { connSet 8 }

    connUnitSensorEntry OBJECT-TYPE
        SYNTAX ConnUnitSensorEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "Each entry contains the information for a
            specific sensor."
        INDEX { connUnitSensorUnitId,
            connUnitSensorIndex }
            ::= { connUnitSensorTable 1 }

        ConnUnitSensorEntry ::=
            SEQUENCE {
                connUnitSensorUnitId
      FcGlobalId,
                connUnitSensorIndex
       INTEGER (1..2147483647),
                connUnitSensorName
       DisplayString,
                connUnitSensorStatus
       INTEGER,
                connUnitSensorInfo
       DisplayString,
                connUnitSensorMessage
       DisplayString,
                connUnitSensorType
       INTEGER,
                connUnitSensorCharacteristic
       INTEGER
            }

        connUnitSensorUnitId OBJECT-TYPE
            SYNTAX FcGlobalId
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The connUnitId of the connectivity unit
                that contains this sensor table."
            ::= { connUnitSensorEntry 1 }

        connUnitSensorIndex OBJECT-TYPE
            SYNTAX INTEGER (1..2147483647)


            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "A unique value among all connUnitSensorEntrys
                with the same value of connUnitSensorUnitId,
                in the range between 1 and
                connUnitNumSensor[connUnitSensorUnitId]."
            ::= { connUnitSensorEntry 2}

        connUnitSensorName OBJECT-TYPE
            SYNTAX DisplayString
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "A textual identification of the sensor
                 intended primarily for operator use."
            ::= { connUnitSensorEntry 3 }

        connUnitSensorStatus OBJECT-TYPE
            SYNTAX INTEGER {
                unknown(1),
                other(2), -- the sensor indicates other than ok,
             -- warning or failure.
                ok(3),      -- the sensor indicates ok
                warning(4), -- the sensor indicates a warning
                failed(5)   -- the sensor indicates failure
            }
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The status indicated by the sensor."
            ::= { connUnitSensorEntry 4 }

        connUnitSensorInfo OBJECT-TYPE
            SYNTAX DisplayString
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "Miscellaneous static info about the sensor
                such as its serial number."
            ::= { connUnitSensorEntry 5 }

        connUnitSensorMessage OBJECT-TYPE
            SYNTAX DisplayString
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "This describes the status of the sensor
                as a message. It may also provide more
                resolution on the sensor indication, for
                example 'Cover temperature 1503K, above
                nominal operating range'"
            ::= { connUnitSensorEntry 6 }


        connUnitSensorType OBJECT-TYPE
            SYNTAX INTEGER {
                unknown(1),
                other(2),
                battery(3),
                fan(4),
                power-supply(5),
                transmitter(6),
                enclosure(7),
                board(8),
                receiver(9)
            }
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The type of component being monitored by this
                sensor."
            ::= { connUnitSensorEntry 7 }

        connUnitSensorCharacteristic OBJECT-TYPE
            SYNTAX INTEGER {
                unknown(1),
                other(2),
                temperature(3),
                pressure(4),
                emf(5),
                currentValue(6), -- current is a keyword
                airflow(7),
                frequency(8),
                power(9),
                door(10)
            }
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The characteristics being monitored by this
                sensor."
            ::= { connUnitSensorEntry 8 }

-- ===========================================================
--    The port table 

    connUnitPortTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF ConnUnitPortEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Generic information on ports for a specific 
            connUnit." 
        ::= { connSet 10 }

    connUnitPortEntry OBJECT-TYPE 
        SYNTAX ConnUnitPortEntry 
        ACCESS not-accessible 


        STATUS mandatory 
        DESCRIPTION 
            "Each entry contains the information for 
            a specific port." 
        INDEX { connUnitPortUnitId, 
            connUnitPortIndex } 
            ::= { connUnitPortTable 1 } 

        ConnUnitPortEntry ::= 
            SEQUENCE { 
                connUnitPortUnitId          FcGlobalId, 
                connUnitPortIndex           INTEGER,
                connUnitPortType            INTEGER, 
                connUnitPortFCClassCap      OCTET STRING,
                connUnitPortFCClassOp       OCTET STRING, 
                connUnitPortState           INTEGER,
                connUnitPortStatus          INTEGER, 
                connUnitPortTransmitterType INTEGER, 
                connUnitPortModuleType      INTEGER, 
                connUnitPortWwn             FcNameId, 
                connUnitPortFCId            FcAddressId, 
                connUnitPortSn              DisplayString, 
                connUnitPortRevision        DisplayString,
                connUnitPortVendor          DisplayString,
                connUnitPortSpeed           INTEGER,
                connUnitPortControl         INTEGER,
                connUnitPortName            DisplayString,
                connUnitPortPhysicalNumber  INTEGER,
                connUnitPortStatObject      OBJECT IDENTIFIER,
                connUnitPortProtocolCap     OCTET STRING,
                connUnitPortProtocolOp      OCTET STRING,
                connUnitPortNodeWwn         FcNameId,
                connUnitPortHWState         INTEGER
            } 

        connUnitPortUnitId OBJECT-TYPE 
            SYNTAX FcGlobalId
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The connUnitId of the connectivity unit
                that contains this port."
            ::= { connUnitPortEntry 1 } 

        connUnitPortIndex OBJECT-TYPE 
            SYNTAX INTEGER (1..2147483647)
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "A unique value among all connUnitPortEntrys
                on this connectivity unit, between 1 and
                connUnitNumPort[connUnitPortUnitId]."
            ::= { connUnitPortEntry 2 } 

        connUnitPortType OBJECT-TYPE 
            SYNTAX INTEGER { 
                unknown       (1),
                other         (2), 
                not-present   (3),
                hub-port      (4), 
                n-port        (5),  -- end port for fabric
                nl-port       (6),  -- end port for loop
                fl-port       (7),  -- public loop 
                f-port        (8),  -- fabric port 
                e-port        (9),  -- fabric expansion port 
                g-port        (10), -- generic fabric port
                domain-ctl    (11), -- domain controller 
                hub-controller(12), 
                scsi          (13), -- parallel SCSI port 
                escon         (14),
                lan           (15),
                wan           (16),
                ac            (17), -- AC power line
                dc            (18), -- DC power line
                ssa           (19) -- serial storage architecture
            } 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The port type." 
            ::= { connUnitPortEntry 3 } 

        connUnitPortFCClassCap OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (2))
            ACCESS read-only 


            STATUS mandatory 
            DESCRIPTION 
                "Bit mask that specifies the classes
                of service capability of this port. If this is not
                applicable, return all bits set to zero.

                The bits have
                the following definition:
       unknown      - 0
       class-f      - 1
       class-one    - 2
       class-two    - 4
       class-three  - 8
       class-four   - 16
       class-five   - 32
       class-six    - 64" 
            ::= { connUnitPortEntry 4 } 

        connUnitPortFCClassOp OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (2))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Bit mask that specifies the classes
                of service that are currently operational.
                If this is not applicable, return all bits 
                set to zero.  This object has the same 
                definition as connUnitPortFCClassCap"
            ::= { connUnitPortEntry 5 } 

        connUnitPortState OBJECT-TYPE
            SYNTAX INTEGER {
                unknown(1),
                online(2), -- available for meaningful work
                offline(3), -- not available for meaningful work
                bypassed(4), -- no longer used (4/12/00)
                diagnostics(5)
            }
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The user selected state of the port hardware."
           ::= { connUnitPortEntry 6 }

        connUnitPortStatus OBJECT-TYPE 
            SYNTAX INTEGER { 
                unknown           (1),
                unused            (2), -- device cannot report
             -- this status
                ready             (3), -- FCAL Loop or FCPH Link reset
             -- protocol
             -- initialization has completed
                warning           (4), -- do not use (4/12/00)
                failure           (5), -- do not use (4/12/00)
                notparticipating  (6), -- loop notparticipating and
             -- does not
             -- have a loop address


                initializing      (7), -- protocol is proceeding
                bypass            (8), -- do not use (4/12/00)
                ols               (9)  -- FCP offline status
            } 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "An overall protocol status for the 
                port. This value of connUnitPortState is not
                online, then this is reported Unknown." 
            ::= { connUnitPortEntry 7 } 

        connUnitPortTransmitterType OBJECT-TYPE
            SYNTAX INTEGER { 
                unknown(1),
                other(2), 
                unused(3), 
                shortwave(4), 
                longwave(5), 
                copper(6), 
                scsi(7),
                longwaveNoOFC(8),
                shortwaveNoOFC(9),
                longwaveLED(10),
                ssa(11)
             } 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The technology of the port transceiver." 
            ::= { connUnitPortEntry 8 } 

        connUnitPortModuleType OBJECT-TYPE 
            SYNTAX INTEGER { 
                unknown(1),
                other(2), 
                gbic(3), 
                embedded(4), -- fixed, ie, oneXnine
                glm(5),
                gbicSerialId(6),
                gbicNoSerialId(7),
                gbicNotInstalled(8),
                smallFormFactor(9) -- this is generically a small form
                      -- factor connector.
            } 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The module type of the port connector." 
            ::= { connUnitPortEntry 9 } 

        connUnitPortWwn OBJECT-TYPE 
            SYNTAX FcNameId 
            ACCESS read-only


            STATUS mandatory 
            DESCRIPTION 
                "The World Wide Name of the port 
                if applicable, otherwise all zeros." 
             ::= { connUnitPortEntry 10 } 

        connUnitPortFCId OBJECT-TYPE 
            SYNTAX FcAddressId
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is the assigned Fibre Channel ID of
                this port.  This value is expected to be
                a Big Endian value of 24 bits. If this is
                loop, then it is the ALPA that is connected.
                If this is an eport, then it will only
                contain the domain ID left justified, zero
                filled. If this port does not have a Fibre
                Channel address, return all bits set to 1."
            ::= { connUnitPortEntry 11 } 

        connUnitPortSn OBJECT-TYPE 
            SYNTAX DisplayString (SIZE(0..79)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The serial number of the unit (e.g., for 
                a GBIC). If this is not applicable, return 
                empty string." 
            ::= { connUnitPortEntry 12 } 

        connUnitPortRevision OBJECT-TYPE 
            SYNTAX DisplayString (SIZE(0..79)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The port revision (e.g., for a GBIC)."
            ::= { connUnitPortEntry 13 } 

        connUnitPortVendor OBJECT-TYPE 
            SYNTAX DisplayString (SIZE(0..79)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The port vendor (e.g., for a GBIC)."
            ::= { connUnitPortEntry 14 } 

        connUnitPortSpeed OBJECT-TYPE
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory
            DESCRIPTION
                "The speed of the port in kilobytes per 
                second."
            ::= { connUnitPortEntry 15 }

        connUnitPortControl OBJECT-TYPE
            SYNTAX INTEGER {
                unknown(1),
                invalid(2),
                resetConnUnitPort(3),
                bypassConnUnitPort(4),
                unbypassConnUnitPort(5),
                offlineConnUnitPort(6),
                onlineConnUnitPort(7),
                resetConnUnitPortCounters(8)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "This object is used to control the addressed
                connUnit's port. Valid commands are:

                resetConnUnitPort: If the addressed connUnit
       allows this operation to be performed to this
       port, the addressed port performs a
       vendor-specific 'reset' operation. Examples of
       these operations are: the Link Reset protocol,
       the Loop Initialization protocol, or a
       resynchronization occurring between the
       transceiver in the addressed port to the
       transceiver that the port is connected to.

                bypassConnUnitPort: If the addressed connUnit
       allows this operation to be performed to this
       port, the addressed port performs a
       vendor-specific 'bypass' operation. Examples of
       these operations are:
       transitioning from online to offline, a
       request(NON-PARTICIPATING) command to the
       Loop Port state machine, or removal of the
       port from an arbitrated loop by a hub.

                unbypassConnUnitPort: If the addressed connUnit
       allows this operation to be performed to this
       port, the addressed port performs a
       vendor-specific 'unbypass' operation. Examples
       of these operations are:
       the Link Failure protocol, a
       request(PARTICIPATING) command to the
       Loop Port state machine, or addition of the
       port to an arbitrated loop by a hub.

                offlineConnUnitPort: If the addressed connUnit
       allows this operation to be performed to this
       port, the addressed port performs a
       vendor-specific 'offline' operation. Examples
       of these operations are:
       disabling a port's transceiver, the Link
       Failure protocol, request(NON-PARTICIPATING)


       command to the Loop Port state machine, or
       removal of the port from an arbitrated loop
       by a hub.

                onlineConnUnitPort: If the addressed connUnit
       allows this operation to be performed to this
       port, the addressed port performs a
       vendor-specific 'online' operation. Examples
       of these operations are:
       enabling a port's transceiver, the Link
       Failure protocol, request(PARTICIPATING)
       command to the Loop Port state machine, or
       addition of the port from an arbitrated loop
       by a hub.

                resetConnUnitPortCounters: If the addressed connUnit
       allows this operation to be performed to this
       port, the addressed port statistics table counters
       will be set to zero.

                NOTE: Each implementation may chose not to allow
                any or all of these values on a SET. On a read, if
                you do not support write, then return invalid.
                Otherwise return the last control operation
                attempted."

            ::= { connUnitPortEntry 16 }

        connUnitPortName OBJECT-TYPE 
            SYNTAX DisplayString
            ACCESS read-write 
            STATUS mandatory 
            DESCRIPTION 
                "A user-defined name for this port. This means that up
                 to DisplayString characters may be supported. If less
                 than, then the name will be truncated in the
                 connunit."
            ::= { connUnitPortEntry 17 }

        connUnitPortPhysicalNumber OBJECT-TYPE 
            SYNTAX INTEGER
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is the internal port number this 
                port is known by. In many implementations, 
                this should be the same as connUnitPortIndex.
                Some implementations may have an internal port
                representation not compatible with the rules
                for table indeces.  In that case, provide the
                internal representation of this port in this 
                object.  This value may also be used in the 
                connUnitLinkPortNumberX or connUnitLinkPortNumberY
                objects of the connUnitLinkTable."
            ::= { connUnitPortEntry 18 } 

        connUnitPortStatObject OBJECT-TYPE 
            SYNTAX OBJECT IDENTIFIER 
            ACCESS read-only 


            STATUS deprecated 
            DESCRIPTION
                "This contains the OID of the first object of the
                table that contains the statistics for this particular
                port. If this has a value of zero, then there are no
                statistics available for this port. The port type
                information will help identify the statistics objects
                that will be found in the table."
            ::= { connUnitPortEntry 19 }

        connUnitPortProtocolCap OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (2))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Bit mask that specifies the driver level
                protocol capability of this port. If this is not
                applicable, return all bits set to zero.

                The bits have
                the following definition:
       unknown      - 0
       Loop         - 1
       Fabric       - 2
       SCSI         - 4
       TCP/IP       - 8
       VI           - 16
       FICON        - 32" 
            ::= { connUnitPortEntry 20 } 

        connUnitPortProtocolOp OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (2))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Bit mask that specifies the driver level
                protocol(s) that are currently operational.
                If this is not applicable, return all bits 
                set to zero.  This object has the same 
                definition as connUnitPortProtocolCap"
            ::= { connUnitPortEntry 21 } 

        connUnitPortNodeWwn OBJECT-TYPE 
            SYNTAX FcNameId 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The Node World Wide Name of the port 
                if applicable, otherwise all zeros.
                This should have the same value for a
                group of related ports. The container is
                defined as the largest physical entity.
                For example, all ports on HBAs on a host
                will have the same Node WWN. All ports on


                the same storage subsystem will have the
                same Node WWN." 
             ::= { connUnitPortEntry 22 } 

        connUnitPortHWState OBJECT-TYPE
            SYNTAX INTEGER {
                unknown     (1),
                failed      (2), -- port failed diagnostics
                bypassed    (3),  -- FCAL bypass, loop only
                active      (4), -- connected to a device
                loopback    (5), -- Port in ext loopback
                txfault     (6), -- Transmitter fault
                noMedia     (7), -- media not installed
                linkDown    (8)  -- waiting for activity (rx sync)
            }
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The hardware detected state of the port."
           ::= { connUnitPortEntry 23 }

-- ===========================================================
-- event group

    connUnitEventTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF ConnUnitEventEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "The table of connectivity unit events. Errors, 
            warnings, and information should be reported
            in this table." 
        ::= { connSet 11 }

    connUnitEventEntry OBJECT-TYPE 
        SYNTAX ConnUnitEventEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Each entry contains information on 
            a specific event for the given 
            connectivity unit." 
        INDEX { connUnitEventUnitId, connUnitEventIndex } 
        ::= { connUnitEventTable 1 } 

        ConnUnitEventEntry ::= 
            SEQUENCE { 
                connUnitEventUnitId 
       FcGlobalId, 
                connUnitEventIndex 
       INTEGER (1..2147483647), 
                connUnitEventId 
       INTEGER, 
                connUnitREventTime 
       DisplayString, 

                connUnitSEventTime 
       TimeTicks, 
                connUnitEventSeverity
       FcEventSeverity, 
                connUnitEventType
       INTEGER,
                connUnitEventObject
       OBJECT IDENTIFIER, 
                connUnitEventDescr 
       DisplayString
            } 

        connUnitEventUnitId OBJECT-TYPE 
            SYNTAX FcGlobalId
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The connUnitId of the connectivity unit
                that contains this event table."
            ::= { connUnitEventEntry 1 } 

        connUnitEventIndex OBJECT-TYPE 
            SYNTAX INTEGER (1..2147483647)
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Each connectivity unit has its own event buffer.
                As it wraps, it may write over previous events.
                This object is an index into the buffer.
                It is recommended that this table be read using
                'getNext's to retrieve the initial table.
                The management application should read the
                event table at periodic intervals and then 
                determine if any new entries were added by 
                comparing the last known index value with the 
                current highest index value. The management 
                application should then update its copy of
                the event table. If the read interval
                is too long, it is possible that there may 
                be events that may not be contained in the
                agent's internal event buffer.
                For example, an agent may read events 50-75.
                At the next read interval, connUnitEventCurrID
                is 189.  If the management app tries to read
                event index 76, and the agent's internal buffer
                is 100 entries max, event index 76 will no longer
                be available.
                The index value is an incrementing integer starting
                from one every time there is a table reset.
                On table reset, all contents are emptied and
                all indeces are set to zero. When an
                event is added to the table, the event is
                assigned the next higher integer value than
                the last item entered into the table. If the


                index value reaches its maximum value, the next
                item entered will cause the index value to
                roll over and start at one again."
            ::= { connUnitEventEntry 2 } 

        connUnitEventId OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS deprecated
            DESCRIPTION 
                "The internal event Id. Incremented for each 
                event, ranging between 1 and connUnitMaxEvents.
                Not used as table index to simplify 
                the agent implementation. When this
                reaches the end of the range specified by
                connUnitMaxEvents, the Id will roll over to start
                at one. This value will be set back to one at
                reset. The relationship of this value to the index
                is that internal event id may represent a smaller
                number than a 32 bit integer (eg max 100 entries) 
                and would only have a value range up to 
                connUnitMaxEvents."
            ::= { connUnitEventEntry 3 } 

        connUnitREventTime OBJECT-TYPE 
            SYNTAX DisplayString (SIZE (0..15))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is the real time when the event occurred.
                It has the following format.
       DDMMYYYY HHMMSS
       DD=day number
       MM=month number
       YYYY=year number
       HH=hour number
       MM=minute number
       SS=seconds number
                If not applicable, return either a NULL string
                or '00000000 000000'."
            ::= { connUnitEventEntry 4 } 

        connUnitSEventTime OBJECT-TYPE 
            SYNTAX TimeTicks
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is the sysuptime timestamp when the
                event occurred."
            ::= { connUnitEventEntry 5 } 

        connUnitEventSeverity OBJECT-TYPE 
            SYNTAX FcEventSeverity
            ACCESS read-only 


            STATUS mandatory 
            DESCRIPTION 
                "The event severity level." 
            ::= { connUnitEventEntry 6 } 

        connUnitEventType OBJECT-TYPE 
            SYNTAX INTEGER {
                unknown(1),
                other(2),
                status(3),
                configuration(4),
                topology(5)
            }
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The type of this event."
            ::= { connUnitEventEntry 7 } 

        connUnitEventObject OBJECT-TYPE 
            SYNTAX OBJECT IDENTIFIER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is used with the connUnitEventType
                to identify which object the event refers to.
                Examples are 
                connUnitPortStatus.connUnitId.connUnitPortIndex,
                connUnitStatus.connUnitId, etc."
            ::= { connUnitEventEntry 8 } 

        connUnitEventDescr OBJECT-TYPE 
            SYNTAX DisplayString 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The description of the event." 
            ::= { connUnitEventEntry 9 } 

-- ===========================================================
-- The link table
-- is intended to organize and communicate 
-- any information the agent possesses
-- which would assist a management application
-- to discover the CONNECTIVITY UNITS in the 
-- framework and the TOPOLOGY of their interconnect.
-- That is, the goal is to assist the management
-- application not only to LIST the elements of the framework,
-- but to MAP them.

-- With this goal, the agent SHOULD include
-- as much as it possesses about any links
-- from its own connectivity units to others,
-- including links among its own units.


-- An agent SHOULD include partial information
-- about links if it is not able to fully
-- define them.
-- For an entry to be considered to be valid, both the X (local)
-- and the Y (remote) need to have one valid value.

-- If the agent is able to discover links
-- which do not directly attach to members of its agency
-- and its discovery algorithm gives some assurance
-- the links are recently valid, it MAY include these links. 

-- Link information entered by administrative action
-- MAY be included even if not validated directly
-- if the link has at least one endpoint in this agency,
-- but SHOULD NOT be included otherwise.

-- A connectivity unit should fill the table in as best it can.
-- One of the methods to fill this in would be to use the RNID
-- ELS (ANSI document 99-422v0). This allows one to query a
-- port for the information needed for the link table.

-- This table is accessed either directly if the management
-- software has an index value or via GetNexts. The value of
-- the indexes are not required to be contiguous. Each entry
-- created in this table will be assigned an index. This
-- relationship is kept persistent until the entry is removed
-- from the table or the system is reset. The total number of
-- entries are defined by the size of the table

    connUnitLinkTable OBJECT-TYPE
        SYNTAX SEQUENCE OF ConnUnitLinkEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "A list of links know to this agent from this
            connectivity unit to other connectivity units."
        ::= { connSet 12 }

    connUnitLinkEntry OBJECT-TYPE
        SYNTAX ConnUnitLinkEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "An entry describing a particular link to another."
        INDEX { connUnitLinkUnitId,
            connUnitLinkIndex }
            ::= { connUnitLinkTable 1 }

        ConnUnitLinkEntry ::=
            SEQUENCE {
                connUnitLinkUnitId            FcGlobalId,
                connUnitLinkIndex             INTEGER,
                connUnitLinkNodeIdX           OCTET STRING,
                connUnitLinkPortNumberX       INTEGER,
                connUnitLinkPortWwnX          FcGlobalId,
                connUnitLinkNodeIdY           OCTET STRING,
                connUnitLinkPortNumberY       INTEGER,
                connUnitLinkPortWwnY          FcGlobalId,
                connUnitLinkAgentAddressY     OCTET STRING,
                connUnitLinkAgentAddressTypeY INTEGER,
                connUnitLinkAgentPortY        INTEGER,
                connUnitLinkUnitTypeY         FcUnitType,
                connUnitLinkConnIdY           OCTET STRING,
                connUnitLinkCurrIndex         INTEGER
            }

        connUnitLinkUnitId OBJECT-TYPE
            SYNTAX FcGlobalId
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The connUnitId of the connectivity unit
                that contains this link table."
            ::= { connUnitLinkEntry 1 }

        connUnitLinkIndex OBJECT-TYPE
            SYNTAX INTEGER (1..2147483647)
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "This index is used to create a unique value
                for each entry in the link table with the same
                connUnitLinkUnitId. The value
                can only be reused if it is not currently in
                use and the value is the next candidate to
                be used. This value wraps at the highest
                value represented by the size of INTEGER.
                This value is reset to zero when the system is
                reset and the first value to be used is one."
            ::= { connUnitLinkEntry 2 }

        connUnitLinkNodeIdX OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE(16))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The node WWN of the unit at one end
                of the link.  If the node WWN is unknown 
                and the node is a connUnit in the responding 
                agent then the value of this object MUST BE 
                equal to its connUnitID."
            ::= { connUnitLinkEntry 3 }

        connUnitLinkPortNumberX OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The port number on the unit specified by
                connUnitLinkNodeIdX if known, otherwise -1. 
                If the value is nonnegative then it will be
                equal to connUnitPortPhysicalNumber."
            ::= { connUnitLinkEntry 4 }

        connUnitLinkPortWwnX OBJECT-TYPE
            SYNTAX FcGlobalId
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The port WWN of the unit specified by
                connUnitLinkNodeIdX if known, 
                otherwise 16 octets of binary 0"
            ::= { connUnitLinkEntry 5 }

        connUnitLinkNodeIdY OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE(16))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The node WWN of the unit at the other end
                of the link.  If the node WWN is unknown 
                and the node is a connUnit in the responding 
                SNMP agency then the value of this object 
                MUST BE equal to its connUnitID."
            ::= { connUnitLinkEntry 6 }

        connUnitLinkPortNumberY OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The port number on the unit specified by
                connUnitLinkNodeIdY if known, otherwise -1. 
                If the value is nonnegative then it will be
                equal to connUnitPortPhysicalNumber."
            ::= { connUnitLinkEntry 7 }


        connUnitLinkPortWwnY OBJECT-TYPE
            SYNTAX FcGlobalId
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The port WWN on the unit specified by
                connUnitLinkNodeIdY if known, 
                otherwise 16 octets of binary 0"
            ::= { connUnitLinkEntry 8 } 

        connUnitLinkAgentAddressY OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE(16))
            ACCESS read-only
            STATUS mandatory 
            DESCRIPTION 
                "The address of an FCMGMT MIB agent for the
                node identified by connUnitLinkNodeIdY,
                if known; otherwise 16 octets of binary 0"
            ::= { connUnitLinkEntry 9 } 

        connUnitLinkAgentAddressTypeY OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "If connUnitLinkAgentAddressY is nonzero,
                it is a protocol address.
                ConnUnitLinkAgentAddressTypeY is the
                the 'address family number' assigned by IANA
                to identify the address format.
                (eg, 1 is Ipv4, 2 is Ipv6). If
                connUnitLinkAgentAddressY is all zeros, then
                this value is ignored."
            ::= { connUnitLinkEntry 10 }

        connUnitLinkAgentPortY OBJECT-TYPE 
            SYNTAX INTEGER
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The IP port number for the agent. This is
                provided in case the agent is at a non-standard
                SNMP port."
            ::= { connUnitLinkEntry 11 } 

        connUnitLinkUnitTypeY OBJECT-TYPE 
            SYNTAX FcUnitType
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Type of the FC connectivity unit as defined in
                connUnitType."
            ::= { connUnitLinkEntry 12 } 


        connUnitLinkConnIdY OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE(3)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is the Fibre Channel ID of this port.
                If the connectivity unit is a switch, this
                is expected to be a Big Endian value of 24
                bits. If this is loop, then it is the ALPA
                that is connected. If this is an eport, then
                it will only contain the domain ID. If not
                any of those, unknown or cascaded loop,
                return all bits set to 1."
            ::= { connUnitLinkEntry 13 } 

        connUnitLinkCurrIndex OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The last used link index."
            ::= { connUnitLinkEntry 14 } 

-- =================================================================
-- The following four tables have been obsoleted. These were used to
-- keep statistic information based on the type of port type. It was
-- changed for all ports to use a common statistics table.

--    connUnitPortStatHubTable OBJECT-TYPE
--        SYNTAX SEQUENCE OF ConnUnitPortStatHubEntry
--        ACCESS not-accessible
--        STATUS obsolete
--        DESCRIPTION
--            "A list of statistics for the hub port type."
--        ::= { statSet 1 }

--    connUnitPortStatFabricTable OBJECT-TYPE
--        SYNTAX SEQUENCE OF ConnUnitPortStatFabricEntry
--        ACCESS not-accessible
--        STATUS obsolete
--        DESCRIPTION
--            "A list of statistics for the fabric port types."
--        ::= { statSet 2 }

--    connUnitPortStatSCSITable OBJECT-TYPE
--        SYNTAX SEQUENCE OF ConnUnitPortStatSCSIEntry
--        ACCESS not-accessible
--        STATUS obsolete
--        DESCRIPTION
--            "A list of statistics for the SCSI port type."
--        ::= { statSet 3 }

--    connUnitPortStatLANTable OBJECT-TYPE
--        SYNTAX SEQUENCE OF ConnUnitPortStatLANEntry


--        ACCESS not-accessible
--        STATUS obsolete
--        DESCRIPTION
--            "A list of statistics for the LAN/WAN port type."
--        ::= { statSet 4 }

-- There is one and only one statistics table for each
-- individual port. For all objects in statistics table, if the
-- object is not supported by the conn unit then the high order bit
-- is set to 1 with all other bits set to zero. The high order bit is
-- reserved to indicate if the object if supported or not. All objects
-- start at a value of zero at hardware initialization and continue
-- incrementing till end of 63 bits and then wrap to zero. 

-- Port Statistics

    connUnitPortStatTable OBJECT-TYPE
        SYNTAX SEQUENCE OF ConnUnitPortStatEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "A list of statistics for the fabric port types."
        ::= { statSet 5 }

    connUnitPortStatEntry OBJECT-TYPE
        SYNTAX ConnUnitPortStatEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "An entry describing port statistics."
        INDEX { connUnitPortStatUnitId,
                connUnitPortStatIndex }
            ::= { connUnitPortStatTable 1 }

        ConnUnitPortStatEntry ::=
            SEQUENCE {
                connUnitPortStatUnitId
       FcGlobalId,
                connUnitPortStatIndex
       INTEGER,
                connUnitPortStatCountError
       OCTET STRING, 
                connUnitPortStatCountTxObjects
       OCTET STRING, 
                connUnitPortStatCountRxObjects
       OCTET STRING, 
                connUnitPortStatCountTxElements
       OCTET STRING,
                connUnitPortStatCountRxElements
       OCTET STRING,
                connUnitPortStatCountBBCreditZero
       OCTET STRING,
                connUnitPortStatCountInputBuffersFull
       OCTET STRING,
                connUnitPortStatCountFBSYFrames
       OCTET STRING,
                connUnitPortStatCountPBSYFrames
       OCTET STRING,
                connUnitPortStatCountFRJTFrames
       OCTET STRING,
                connUnitPortStatCountPRJTFrames
       OCTET STRING,
                connUnitPortStatCountClass1RxFrames
       OCTET STRING,
                connUnitPortStatCountClass1TxFrames
       OCTET STRING,
                connUnitPortStatCountClass1FBSYFrames
       OCTET STRING,
                connUnitPortStatCountClass1PBSYFrames
       OCTET STRING,
                connUnitPortStatCountClass1FRJTFrames
       OCTET STRING,
                connUnitPortStatCountClass1PRJTFrames
       OCTET STRING,
                connUnitPortStatCountClass2RxFrames
       OCTET STRING,
                connUnitPortStatCountClass2TxFrames
       OCTET STRING,
                connUnitPortStatCountClass2FBSYFrames
       OCTET STRING,
                connUnitPortStatCountClass2PBSYFrames
       OCTET STRING,
                connUnitPortStatCountClass2FRJTFrames
       OCTET STRING,
                connUnitPortStatCountClass2PRJTFrames
       OCTET STRING,
                connUnitPortStatCountClass3RxFrames
       OCTET STRING,
                connUnitPortStatCountClass3TxFrames
       OCTET STRING,
                connUnitPortStatCountClass3Discards
       OCTET STRING,
                connUnitPortStatCountRxMulticastObjects
       OCTET STRING,
                connUnitPortStatCountTxMulticastObjects
       OCTET STRING,
                connUnitPortStatCountRxBroadcastObjects
       OCTET STRING,
                connUnitPortStatCountTxBroadcastObjects
       OCTET STRING,
                connUnitPortStatCountRxLinkResets
       OCTET STRING,
                connUnitPortStatCountTxLinkResets
       OCTET STRING,
                connUnitPortStatCountNumberLinkResets
       OCTET STRING,
                connUnitPortStatCountRxOfflineSequences
       OCTET STRING,
                connUnitPortStatCountTxOfflineSequences
       OCTET STRING,
                connUnitPortStatCountNumberOfflineSequences
       OCTET STRING,
                connUnitPortStatCountLinkFailures
       OCTET STRING,
                connUnitPortStatCountInvalidCRC
       OCTET STRING,
                connUnitPortStatCountInvalidTxWords
       OCTET STRING,
                connUnitPortStatCountPrimitiveSequenceProtocolErrors
       OCTET STRING,
                connUnitPortStatCountLossofSignal
       OCTET STRING,
                connUnitPortStatCountLossofSynchronization
       OCTET STRING,
                connUnitPortStatCountInvalidOrderedSets
       OCTET STRING,
                connUnitPortStatCountFramesTooLong
       OCTET STRING,
                connUnitPortStatCountFramesTruncated
       OCTET STRING,
                connUnitPortStatCountAddressErrors
       OCTET STRING,
                connUnitPortStatCountDelimiterErrors
       OCTET STRING,
                connUnitPortStatCountEncodingDisparityErrors
       OCTET STRING
            }

        connUnitPortStatUnitId OBJECT-TYPE
            SYNTAX FcGlobalId
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The connUnitId of the connectivity unit
                that contains this port stat table."
            ::= { connUnitPortStatEntry 1 }

        connUnitPortStatIndex OBJECT-TYPE
            SYNTAX INTEGER (0..2147483647)
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "A unique value among all entrys
                in this table, between 0 and
                connUnitNumPort[connUnitPortUnitId]."
            ::= { connUnitPortStatEntry 2 }

        connUnitPortStatCountError OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 


                "A count of the errors that have occured 
                on this port."
            ::= { connUnitPortStatEntry 3 } 

        connUnitPortStatCountTxObjects OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
  "The number of frames/packets/IOs/etc that have been transmitted
   by this port. Note: A Fibre Channel frame starts with SOF and
   ends with EOF. FC loop devices should not count frames passed
   through. This value represents the sum total for all other Tx
   objects."
            ::= { connUnitPortStatEntry 4 } 

        connUnitPortStatCountRxObjects OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
   "The number of frames/packets/IOs/etc that have been received
   by this port. Note: A Fibre Channel frame starts with SOF and
   ends with EOF. FC loop devices should not count frames passed
   through. This value represents the sum total for all other Rx
   objects."
            ::= { connUnitPortStatEntry 5 } 

        connUnitPortStatCountTxElements OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION
   "The number of octets or bytes that have been transmitted
   by this port. One second periodic polling of the port. This
   value is saved and compared with the next polled value to
   compute net throughput. Note, for Fibre Channel, ordered
   sets are not included in the count."
            ::= { connUnitPortStatEntry 6 } 

        connUnitPortStatCountRxElements OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
   "The number of octets or bytes that have been received.
   by this port. One second periodic polling of the port. This
   value is saved and compared with the next polled value to
   compute net throughput. Note, for Fibre Channel, ordered
   sets are not included in the count."
            ::= { connUnitPortStatEntry 7 }

        connUnitPortStatCountBBCreditZero OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))


            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of transitions in/out of BBcredit zero state.
       The other side is not providing any credit. Note,
       this is a Fibre Channel stat only."
            ::= { connUnitPortStatEntry 8 }

        connUnitPortStatCountInputBuffersFull OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of occurrences when all input buffers of a
       port were full and outbound buffer-to-buffer credit
       transitioned to zero. There is no credit to
       provide to other side. Note, this is a Fibre Channel
       stat only."
            ::= { connUnitPortStatEntry 9 }

        connUnitPortStatCountFBSYFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of times that FBSY was returned to this port as a
       result of a frame that could not be delivered to the other
       end of the link. This occurs if either the Fabric or the
       destination port is temporarily busy.  Port can only occur
       on SOFc1 frames (the frames that establish a connection).
       Note, this is a Fibre Channel only stat. This is the sum
       of all classes. If you cannot keep the by class counters,
       then keep the sum counters."
            ::= { connUnitPortStatEntry 10 }

        connUnitPortStatCountPBSYFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of times that PBSY was returned to this port as a
       result of a frame that could not be delivered to the other
       end of the link. This occurs if the destination port is
       temporarily busy.  PBSY can only occur on SOFc1 frames
       (the frames that establish a connection). Note, this is
       a Fibre Channel only stat.This is the sum
       of all classes. If you cannot keep the by class counters,
       then keep the sum counters."
            ::= { connUnitPortStatEntry 11 }

        connUnitPortStatCountFRJTFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 


            DESCRIPTION 
      "Count of times that FRJT was returned to this port as a
       result of a Frame that was rejected by the fabric. Note,
       This is the total for all classes and is a Fibre Channel
       only stat."
            ::= { connUnitPortStatEntry 12 }

        connUnitPortStatCountPRJTFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of times that FRJT was returned to this port as a
       result of a Frame that was rejected at the destination
       N_Port. Note, This is the total for all classes and is
       a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 13 }

        connUnitPortStatCountClass1RxFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of Class 1 Frames received at this port. Note, this
       is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 14 }

        connUnitPortStatCountClass1TxFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of Class 1 Frames transmitted out this port. Note,
       this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 15 }

        connUnitPortStatCountClass1FBSYFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of times that FBSY was returned to this port as a
       result of a Class 1 Frame that could not be delivered to the
       other end of the link. This occurs if either the Fabric or the
       destination port is temporarily busy.  FBSY can only occur on
       SOFc1 frames (the frames that establish a connection). Note,
       this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 16 }

        connUnitPortStatCountClass1PBSYFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
   "Count of times that PBSY was returned to this port as a result
   of a Class 1 Frame that could not be delivered to the other end
   of the link. This occurs if the destination N_Port is temporarily
   busy.  PBSY can only occur on SOFc1 frames (the frames that
   establish a connection). Note, this is a Fibre Channel only
   stat."
            ::= { connUnitPortStatEntry 17 }

        connUnitPortStatCountClass1FRJTFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of times that FRJT was returned to this port as a result
       of a Class 1 Frame that was rejected by the fabric. Note, this
       is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 18 }

        connUnitPortStatCountClass1PRJTFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of times that FRJT was returned to this port as a result
       of a Class 1 Frame that was rejected at the destination N_Port.
       Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 19 }

        connUnitPortStatCountClass2RxFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of Class 2 Frames received at this port. Note, this
       is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 20 }

        connUnitPortStatCountClass2TxFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of Class 2 Frames transmitted out this port. Note,
       this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 21 }

        connUnitPortStatCountClass2FBSYFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
   "Count of times that FBSY was returned to this port as a
   result of a Class 2 Frame that could not be delivered to the
   other end of the link. This occurs if either the Fabric or the
   destination port is temporarily busy.  FBSY can only occur on
   SOFc1 frames (the frames that establish a connection). Note,
   this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 22 }

        connUnitPortStatCountClass2PBSYFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
   "Count of times that PBSY was returned to this port as a result
   of a Class 2 Frame that could not be delivered to the other end
   of the link. This occurs if the destination N_Port is temporarily
   busy.  PBSY can only occur on SOFc1 frames (the frames that
   establish a connection). Note, this is a Fibre Channel only
   stat."
            ::= { connUnitPortStatEntry 23 }

        connUnitPortStatCountClass2FRJTFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of times that FRJT was returned to this port as a result
       of a Class 2 Frame that was rejected by the fabric. Note, this
       is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 24 }

        connUnitPortStatCountClass2PRJTFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of times that FRJT was returned to this port as a result
       of a Class 2 Frame that was rejected at the destination N_Port.
       Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 25 }

        connUnitPortStatCountClass3RxFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of Class 3 Frames received at this port. Note, this
       is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 26 }

        connUnitPortStatCountClass3TxFrames OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of Class 3 Frames transmitted out this port. Note,
       this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 27 }

        connUnitPortStatCountClass3Discards OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of Class 3 Frames that were discarded upon reception
       at this port.  There is no FBSY or FRJT generated for Class 3
       Frames.  They are simply discarded if they cannot be delivered.
       Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 28 }

        connUnitPortStatCountRxMulticastObjects OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of Multicast Frames or Packets received at this port."
            ::= { connUnitPortStatEntry 29 }

        connUnitPortStatCountTxMulticastObjects OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
   "Count of Multicast Frames or Packets transmitted out this port."
            ::= { connUnitPortStatEntry 30 }

        connUnitPortStatCountRxBroadcastObjects OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
   "Count of Broadcast Frames or Packets received at this port."
            ::= { connUnitPortStatEntry 31 }

        connUnitPortStatCountTxBroadcastObjects OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
   "Count of Broadcast Frames or Packets transmitted out this port.
    On a Fibre Channel loop, count only OPNr frames generated."
            ::= { connUnitPortStatEntry 32 }

        connUnitPortStatCountRxLinkResets OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of Link resets. This is the number of LRs received. 
       Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 33 }


        connUnitPortStatCountTxLinkResets OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of Link resets. This is the number LRs transmitted. 
                    Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 34 }

        connUnitPortStatCountNumberLinkResets OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of Link resets and LIPs detected at this port.
       The number times the reset link protocol is initiated.
       These are the count of the logical resets, a count of the
       number of primatives. Note, this is a Fibre Channel only
       stat."
            ::= { connUnitPortStatEntry 35 }

        connUnitPortStatCountRxOfflineSequences OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of Offline Primitive OLS received at this port.
       Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 36 }

        connUnitPortStatCountTxOfflineSequences OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of Offline Primitive OLS transmitted by this port.
       Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 37 }

        connUnitPortStatCountNumberOfflineSequences OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                   "Count of Offline Primitive sequence received at this port.
       Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 38 }

        connUnitPortStatCountLinkFailures OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of link failures. This count is part of the Link Error


       Status Block (LESB). (FC-PH 29.8). Note, this is a Fibre
       Channel only stat."
            ::= { connUnitPortStatEntry 39 }

        connUnitPortStatCountInvalidCRC OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of frames received with invalid CRC. This count is
       part of the Link Error Status Block (LESB). (FC-PH 29.8). Loop
       ports should not count CRC errors passing through when
                    monitoring. Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 40 }

        connUnitPortStatCountInvalidTxWords OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of invalid transmission words received at this
       port. This count is part of the Link Error Status Block (LESB).
      (FC-PH 29.8). Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 41 }

        connUnitPortStatCountPrimitiveSequenceProtocolErrors OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of primitive sequence protocol errors detected at
       this port. This count is part of the Link Error Status
       Block (LESB). (FC-PH 29.8). Note, this is a Fibre Channel
       only stat."
            ::= { connUnitPortStatEntry 42 }

        connUnitPortStatCountLossofSignal OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of instances of signal loss detected at port.
       This count is part of the Link Error Status Block (LESB). 
       (FC-PH 29.8). Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 43 }

        connUnitPortStatCountLossofSynchronization OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of instances of synchronization loss detected at port.
       This count is part of the Link Error Status Block (LESB).
       (FC-PH 29.8). Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 44 }

        connUnitPortStatCountInvalidOrderedSets OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of invalid ordered sets received at port. This count
       is part of the Link Error Status Block (LESB). (FC-PH 29.8).
       Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 45 }

        connUnitPortStatCountFramesTooLong OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of frames received at this port where the
       frame length was greater than what was agreed to in
       FLOGI/PLOGI. This could be caused by losing the end of
       frame delimiter. Note, this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 46 }

        connUnitPortStatCountFramesTruncated OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of frames received at this port where the
       frame length was less than the minimum indicated by the
       frame header - normally 24 bytes, but it could be more if
       the DFCTL field indicates an optional header should have
       been present. Note, this is a FC  only stat."
            ::= { connUnitPortStatEntry 47 }

        connUnitPortStatCountAddressErrors OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of frames received with unknown addressing.
       e.x. unknown SID or DID. the SID or DID is not known to
       the routing algorithm. Note. this is a FC only stat."
            ::= { connUnitPortStatEntry 48 }

        connUnitPortStatCountDelimiterErrors OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of invalid frame delimiters received at this
       port. An example is a frame with a class 2 start and
       a class 3 at the end. Note, this is a FC only stat."
            ::= { connUnitPortStatEntry 49 }


        connUnitPortStatCountEncodingDisparityErrors OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
      "Count of disparity errors received at this port. Note,
       this is a Fibre Channel only stat."
            ::= { connUnitPortStatEntry 50 }

-- ===========================================================
--
-- the Fibre Channel Simple Name Server table
--
-- The Fibre Channel Simple Name Server table contains an entry for each device
-- presently known to this connUnit. There will not be any version on this since
-- FC-GS3 does not define a version today.
--
-- This table is accessed either directly if the management
-- software has an index value or via GetNexts. The value of
-- the indexes are not required to be contiguous. Each entry
-- created in this table will be assigned an index. This
-- relationship is kept persistent until the entry is removed
-- from the table or the system is reset. The total number of
-- entries are defined by the size of the table

    connUnitSnsMaxEntry OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The maximum number of entries in the table."
        ::= { connUnitServiceScalars 1 }

    connUnitSnsTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF ConnUnitSnsEntry
        ACCESS      not-accessible
        STATUS      mandatory
        DESCRIPTION
   "This table contains an entry for each object registered with
   this port in the switch."
        ::= { connUnitServiceTables 1 }

    connUnitSnsEntry OBJECT-TYPE
        SYNTAX      ConnUnitSnsEntry
        ACCESS      not-accessible
        STATUS      mandatory
        DESCRIPTION
   "The Simple Name Server table for the port represented by
   ConnUnitSnsPortIndex ."
        INDEX { connUnitSnsId, connUnitSnsPortIndex }
        ::= { connUnitSnsTable 1 }

        ConnUnitSnsEntry ::=
            SEQUENCE {
                connUnitSnsId
       OCTET STRING,
                connUnitSnsPortIndex
       INTEGER,
                connUnitSnsPortIdentifier
       FcAddressId,
                connUnitSnsPortName
       FcNameId,
                connUnitSnsNodeName
       FcNameId,
                connUnitSnsClassOfSvc
       OCTET STRING,
                connUnitSnsNodeIPAddress
       OCTET STRING,
                connUnitSnsProcAssoc
       OCTET STRING,
                connUnitSnsFC4Type
       OCTET STRING,
                connUnitSnsPortType
       OCTET STRING,
                connUnitSnsPortIPAddress
       OCTET STRING,
                connUnitSnsFabricPortName
       FcNameId,
                connUnitSnsHardAddress
       FcAddressId,
                connUnitSnsSymbolicPortName
       DisplayString, 
                connUnitSnsSymbolicNodeName
       DisplayString
            }

    connUnitSnsId OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (16))
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
            "The connUnitId of the connectivity unit
            that contains this Name Server table."
        ::= { connUnitSnsEntry 1 }

    connUnitSnsPortIndex OBJECT-TYPE
        SYNTAX      INTEGER
        ACCESS      read-only
        STATUS      mandatory
        DESCRIPTION
            "The physical port number of this SNS table entry.
            Each physical port has an SNS table with 1-n entries
            indexed by ConnUnitSnsPortIdentifier (port address)"
        ::= { connUnitSnsEntry 2 }

    connUnitSnsPortIdentifier OBJECT-TYPE
        SYNTAX      FcAddressId
        ACCESS      read-only


        STATUS      mandatory
        DESCRIPTION
            "The Port Identifier for this entry in the SNS table."
        ::= { connUnitSnsEntry 3 }

    connUnitSnsPortName OBJECT-TYPE
        SYNTAX      FcNameId
        ACCESS      read-only
        STATUS      mandatory
        DESCRIPTION
   "The Port WWN for this entry in the SNS table."
        ::= { connUnitSnsEntry 4 }

    connUnitSnsNodeName OBJECT-TYPE
        SYNTAX      FcNameId
        ACCESS      read-only
        STATUS      mandatory
        DESCRIPTION
   "The Node Name for this entry in the SNS table."
        ::= { connUnitSnsEntry 5 }

    connUnitSnsClassOfSvc OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (1))
        ACCESS      read-only
        STATUS      mandatory
        DESCRIPTION
   "The Classes of Service offered by this entry in the SNS table."
        ::= { connUnitSnsEntry 6 }

    connUnitSnsNodeIPAddress OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(16))
        ACCESS      read-only
        STATUS      mandatory
        DESCRIPTION
   "The IPv6 formatted address of the Node for this entry in the SNS
            table."
        ::= { connUnitSnsEntry 7 }

    connUnitSnsProcAssoc OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (1))
        ACCESS      read-only
        STATUS      mandatory
        DESCRIPTION
            "The Process Associator for this entry in the SNS table."
        ::= { connUnitSnsEntry 8 }

    connUnitSnsFC4Type OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (1))
        ACCESS      read-only
        STATUS      mandatory
        DESCRIPTION
   "The FC-4 Types supported by this entry in the SNS table."
        ::= { connUnitSnsEntry 9 }


    connUnitSnsPortType OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (1))
        ACCESS      read-only
        STATUS      mandatory
        DESCRIPTION
            "The Port Type of this entry in the SNS table."
        ::= { connUnitSnsEntry 10 }

    connUnitSnsPortIPAddress OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(16))
        ACCESS      read-only
        STATUS      mandatory
        DESCRIPTION
   "The IPv6 formatted address of this entry in the SNS table."
        ::= { connUnitSnsEntry 11 }

    connUnitSnsFabricPortName OBJECT-TYPE
        SYNTAX      FcNameId
        ACCESS      read-only
        STATUS      mandatory
        DESCRIPTION
   "The Fabric Port name of this entry in the SNS table."
        ::= { connUnitSnsEntry 12 }

    connUnitSnsHardAddress OBJECT-TYPE
        SYNTAX      FcAddressId
        ACCESS      read-only
        STATUS      mandatory
        DESCRIPTION
   "The Hard ALPA of this entry in the SNS table."
        ::= { connUnitSnsEntry 13 }

    connUnitSnsSymbolicPortName OBJECT-TYPE
        SYNTAX DisplayString (SIZE (0..79)) 
        ACCESS      read-only
        STATUS      mandatory
        DESCRIPTION
   "The Symbolic Port Name of this entry in the SNS table."
        ::= { connUnitSnsEntry 14 }

    connUnitSnsSymbolicNodeName OBJECT-TYPE
        SYNTAX DisplayString (SIZE (0..79)) 
        ACCESS      read-only
        STATUS      mandatory
        DESCRIPTION
   "The Symbolic Node Name of this entry in the SNS table."
        ::= { connUnitSnsEntry 15 }

-- SNMP trap registration group 

    trapMaxClients OBJECT-TYPE 
        SYNTAX INTEGER 
        ACCESS read-only 


        STATUS mandatory 
        DESCRIPTION 
            "The maximum number of SNMP trap recipients
            supported by the connectivity unit." 
        ::= { trapReg 1 } 

    trapClientCount OBJECT-TYPE 
        SYNTAX INTEGER 
        ACCESS read-only 
        STATUS mandatory 
        DESCRIPTION 
            "The current number of rows in the trap table."
        ::= { trapReg 2 } 

    trapRegTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF TrapRegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "A table containing a row for each IP address/port
            number that traps will be sent to."
        ::= { trapReg 3 } 

    trapRegEntry OBJECT-TYPE 
        SYNTAX TrapRegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Ip/Port pair for a specific client." 
        INDEX { trapRegIpAddress,
                trapRegPort } 
        ::= { trapRegTable 1 } 

    TrapRegEntry ::= 
        SEQUENCE { 
            trapRegIpAddress 
                IpAddress, 
            trapRegPort 
                INTEGER (1..2147483647),
            trapRegFilter
                FcEventSeverity,
            trapRegRowState
                INTEGER
        } 

    trapRegIpAddress OBJECT-TYPE 
        SYNTAX IpAddress 
        ACCESS read-only 
        STATUS mandatory 
        DESCRIPTION 
            "The Ip address of a client registered for 
            traps."
        ::= { trapRegEntry 1 } 


    trapRegPort OBJECT-TYPE 
        SYNTAX INTEGER (1..2147483647) 
        ACCESS read-only 
        STATUS mandatory 
        DESCRIPTION 
            "The UDP port to send traps to for this host.
            Normally this would be the standard trap port
            (162).  This object is an index and must be
            specified to create a row in this table."
        ::= { trapRegEntry 2 } 

    trapRegFilter OBJECT-TYPE 
        SYNTAX FcEventSeverity
        ACCESS read-write 
        STATUS mandatory 
        DESCRIPTION 
            "This value defines the trap severity
            filter for this trap host. The connUnit will send
            traps to this host that have a severity level 
            less than or equal to this value.
            The default value of this object is 'warning'."
        ::= { trapRegEntry 3} 

    trapRegRowState OBJECT-TYPE
        SYNTAX INTEGER {
            rowDestroy(1), -- Remove row from table.
            rowInactive(2), -- Row exists, but TRAPs disabled
            rowActive(3)   -- Row exists and is enabled for
              -- sending traps
        }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
            "Specifies the state of the row.
            rowDestroy
                READ: Can never happen.
                WRITE: Remove this row from the table.
            rowInactive
                READ: Indicates that this row does exist, but
         that traps are not enabled to be sent to the
         target.
                WRITE: If the row does not exist, and the agent
          allows writes to the trap table, then a new
          row is created. The values of the optional
          columns will be set to default values. Traps are
          not enabled to be sent to the target. If the row
          already existed, then traps are disabled from being
          sent to the target.
            rowActive
                READ: Indicates that this row exists, and that traps
         are enabled to be sent to the target.
                WRITE: If the row does not exist, and the agent
         allows writes to the trap table, then a new row is
         created. The values of the optional columns will be


         set to default values. Traps are enabled to be sent
         to the target. If the row already exists, then traps
         are enabled to be sent to the target.

            A value of rowActive or rowInactive must be specified to
            create a row in the table."
        ::= { trapRegEntry 4} 

-- Related traps 

    connUnitStatusChange TRAP-TYPE 
        ENTERPRISE fcmgmt 
        VARIABLES { connUnitStatus, connUnitState } 
        DESCRIPTION 
            "The overall status of the connectivity unit has 
            changed.
            Recommended severity level (for filtering): alert" 
        --#TYPE       "FA Mib: Connection unit status change."
        --#SUMMARY    "FA Mib: Connection unit status change."
        --#SEVERITY   Minor
        --#CATEGORY   "Status Events"
        --#TIMEINDEX  1
        --#STATE      OPERATIONAL
            
        ::= 1

    -- connUnitAddedTrap , 2, no longer used

    connUnitDeletedTrap TRAP-TYPE
        ENTERPRISE fcmgmt
        VARIABLES { connUnitId }
        DESCRIPTION
            "A connUnit has been deleted from this agent.
            Recommended severity level (for filtering): warning" 
        --#TYPE       "FA Mib: Connection unit deleted."
        --#SUMMARY    "FA Mib: Connection unit deleted."
        --#SEVERITY   Warning
        --#CATEGORY   "Status Events"
        --#TIMEINDEX  1
        --#STATE      OPERATIONAL
        ::= 3

    connUnitEventTrap TRAP-TYPE 
        ENTERPRISE fcmgmt 
        VARIABLES { connUnitEventId, 
       connUnitEventType,
       connUnitEventObject,
       connUnitEventDescr } 
        DESCRIPTION 
            "An event has been generated by the 
            connectivity unit.
            Recommended severity level (for filtering): info" 
        --#TYPE       "FA Mib: Connection unit event trap."
        --#SUMMARY    "FA Mib: Connection unit event trap."
        --#SEVERITY   Normal
        --#CATEGORY   "Configuration Events"
        --#TIMEINDEX  1
        --#STATE      OPERATIONAL
        ::= 4                  

    connUnitSensorStatusChange TRAP-TYPE 
        ENTERPRISE fcmgmt 
        VARIABLES { connUnitSensorStatus } 
        DESCRIPTION 
            "The overall status of the connectivity unit has 
            changed.
            Recommended severity level (for filtering): alert"
        --#TYPE       "FA Mib: Connection unit sensor status change."
        --#SUMMARY    "FA Mib: Connection unit sensor status change."
        --#SEVERITY   Minor
        --#CATEGORY   "Status Events"
        --#TIMEINDEX  1
        --#STATE      OPERATIONAL
        ::= 5  

    connUnitPortStatusChange TRAP-TYPE 
        ENTERPRISE fcmgmt 
        VARIABLES { connUnitPortStatus, connUnitPortState } 
        DESCRIPTION 
            "The overall status of the connectivity unit has 
            changed.
            Recommended severity level (for filtering): alert"
        --#TYPE "FA Mib: Port status change."
        --#SUMMARY "FA Mib: Port status change."
        --#SEVERITY Minor
        --#CATEGORY   "Status Events"
        --#TIMEINDEX 99
        --#STATE   DEGRADED
        ::= 6

END